define(["jquery","bbcare","fu/app/dataExport/dataExport.servers","fu/app/dataExport/dataExport.ui","fu/app/datatable/datatable.ui"],
	function($,$bb,$servers,$ui,$datatableUi){
	var dataExport = {};

	/**
	 * 请求下载接口成功后的回调函数
	 */
	var ajaxUploadCallBack = function(data){
		$datatableUi.init({
            "id": "exportList",
            "options": $servers.getOptions()
        });
	}

	/**
	 * 请求导出接口成功后的回调函数
	 */
	var ajaxExportCallBack = function(data,params){
		$("#dataExport").html("");
		if(data.success){ 
			$servers.ajaxUpload(params,ajaxUploadCallBack);
		}else{
			$bb.toastShow(data.msg ? data.msg : "请求导出接口出错！");
		}
	}
	/**
	 * 导出
	 */
	var onExport = function(){
		var projectId = $("#dataExportProject option:selected").val();
		var projectName = $("#dataExportProject option:selected").text();
		var startTime = $("#dataExportStartTime").val();
		var endTime = $("#dataExportEndTime").val();
		var nowTime_ms = new Date().getTime();
		var startTime_ms = new Date(startTime).getTime();
		var endTime_ms = new Date(endTime).getTime();
		if( !projectId ){
			$bb.toastShow("请选择项目,项目不可为全部！");
		}else if( !startTime ){
			$bb.toastShow("请选择开始时间,开始时间不可为空！");
		}else if(startTime_ms > nowTime_ms){
			$bb.toastShow("开始时间不可选择未来时间！");
		}else if( !endTime ){
			$bb.toastShow("请选择结束时间,结束时间不可为空！");
		}else if( endTime_ms > nowTime_ms ){
			$bb.toastShow("结束时间不可选择未来时间！");
		}else{
			var params = {
				"projectName":projectName,
				"projectId":projectId,
				"beginTime":startTime,
				"endTime":endTime
			};
			// 效果
			$ui.loadInit({
				"id":"dataExport"
			});
			$servers.ajaxExport(params,ajaxExportCallBack);
		}
	}
	/**
	 * 重置
	 */
	var onReset = function(){
		$("#dataExportStartTime").val("");
		$("#dataExportEndTime").val("");
		$("#dataExportProject").val("");
	};
	/**
	 * 请求项目成功后的回调函数
	 */
	var ajaxProjectCallBack = function(data){
		$ui.projectInit({
			"id":"dataExportProject",
			"list":data
		});
		$ui.projectInit({
			"id":"exportListProject",
			"list":data
		});
		// 重置
		$(".data-export-reset").unbind("click");
		$(".data-export-reset").click(onReset);
		// 导出
		$(".data-export-derived").unbind("click");
		$(".data-export-derived").click(onExport);
	}
	/**
	 * 初始化
	 */
	dataExport.init = function(){
		$servers.ajaxProject(ajaxProjectCallBack);
		$datatableUi.init({
            "id": "exportList",
            "options": $servers.getOptions()
        });
	}
	
	return dataExport;
});